package com.xianrenit.xianrenpuzi.manager.listener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.xianrenit.xianrenpuzi.manager.bean.Student;

import java.util.ArrayList;
import java.util.List;

public class StuExcelDataListener extends AnalysisEventListener<Student> {
    private List<Student> stus = new ArrayList<>();
    private int limit  = 10;
    //每读取到一行数据转为指定的泛型类型的对象 回调一次
    @Override
    public void invoke(Student data, AnalysisContext context) {
        //保存数据到数据库
        stus.add(data);
        if(stus.size()>=limit){
            System.out.println("invoke---批量保存数据："+stus);
            //清空已经保存到数据库的缓存
            stus.clear();
        }
    }
    //excel文档数据读取完毕后回调
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        if(stus.size()>=0){
            System.out.println("doAfterAllAnalysed---批量保存数据："+stus);
            //清空已经保存到数据库的缓存
            stus.clear();
        }
    }
}
